home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group98b.txt
/
000137_icon-group-sender _Fri Jul 17 16:50:18 1998.msg
< prev
next >
Wrap
Internet Message Format
|
2000-09-20
|
6KB
Return-Path: <icon-group-sender>
Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
by baskerville.CS.Arizona.EDU (8.8.8/8.8.7) with SMTP id QAA11906
for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Fri, 17 Jul 1998 16:50:14 -0700 (MST)
Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
id AA18627; Fri, 17 Jul 1998 16:49:58 -0700
From: pygmy@eskimo.com (Frank Sergeant)
To: icon-group@baskerville.CS.Arizona.EDU
Subject: Re: using Icon for database application
Date: Fri, 17 Jul 1998 14:25:32 -0500
Reply-To: frank.sergeant@pobox.com
Message-Id: <sU6r1Yv1u83e084yn@eskimo.com>
In-Reply-To: <hkbk1Yv1uAmb084yn@eskimo.com>
Lines: 120
Errors-To: icon-group-errors@optima.CS.Arizona.EDU
Status: RO
Content-Length: 4593
My fooling around with Icon continues as I try to decide on
the future direction of the database application (currently
in Clipper) that I discussed earlier. Here is an update
along with some additional questions.
I have had the _Graphics Programming in Icon_ book for
awhile and am enjoying it.
I suppose I still do not fully appreciate some of the
special/unique features of Icon. I guess that will come
with time. Meanwhile, it looks like all the data processing
can be done comfortably in Icon by using its simple features
that I already understand. One appeal to me of Icon was that
much of what I do in Clipper seems to map conveniently to
Icon. For example, the arrays/lists in both are 1-based and
can hold elements of mixed types, missing parameters default
to Nil/&null, etc.
That leaves two areas of concern: the GUI (under Windows) and
TCP/IP socket connections (to communicate between the workstations
and the server, both running Icon).
GUI:
I tried the TextDialog() function and at first thought
it might be a show stopper. The appearance looked a little
too Unixy and not enough like native Windows. By trying
various color combinations and font sizes, however, I got
something that I might be able to live with. I put up a
simple example with 4 text entry fields and two buttons.
Unfortunately, the tab key only moves among the 4 text
fields and never gets to the buttons. Is there a way
to add the buttons to the tab list? Also, the editing
in the text fields was not at all what a Windows user
would expect (home, end, high-lighted replacement, etc
did not seem to work at all).
I need to try it some more, but the first example
I tried with VIB with 3 entry fields and a few buttons
just didn't work right at all. I could click in one
field with the mouse and see the I-bar cursor appear
but when I started typing, the text appeared in a
different entry field. Again, the editing didn't work
and so forth.
Anyway, for my database project, I might not want
to build the screens with VIB. I think I would prefer
to build them procedurally. The main reason is that
the Clipper code is filled with "@ SAY GET" statements
such as
@ 10, 20 SAY "First Name" GET FNAME PICTURE "@!"
and I might rather mechanically convert all of them
to put up a "reasonable" entry form (and later make
it prettier). So, I might not need VIB after all.
If you think I'm overlooking some strong points of
VIB, please enlighten me.
Then I stumbled upon a mention of some native
Windows features in Technical Report CS-97-9 "Version
9 of Icon for Microsoft Windows" on the UTSA site.
I experimented a little with WinMenuBar(), WinScrollBar(),
and WinButton() which all seem to work perfectly and give
the conventional Windows sculpted appearance.
I even understood how to attach events to the
menu items and buttons.
I tried WinEditRegion() but didn't fully understand
how to work with it. The editing part did seem to work
properly with home, end, high-lighted replacement, etc.
However, I didn't see how to get out of it or how to make
it into a single line edit field (or even a fixed multi
line edit field), that is, I couldn't get rid of the
scroll bars and couldn't "escape" from the edit region
or see exactly how to tie it into the rest of the program.
I haven't tried looking for the source for this. It might
explain everything.
Are there other native Windows widgets? Especially,
a single line edit field?
Anyway, I am now so close to seeing how I would do
everything GUI-related that my application would need,
that I feel sure the remaining pieces can either be found
or worked around.
SOCKETS:
I gathered from some other postings that the Unix
version has a socket interface and also a general mechanism
for calling arbitrary external (e.g. C) routines but that
the Windows version does not. (?)
I tried looking briefly at the Icon source to see
whether I might see how to add the socket routines and such.
I decided now is not the time for me to try to do this.
It reminded me of the joke I saw posted to comp.lang.python
that went something like this:
You have a problem. You say to yourself, "I know!
I'll use Regular Expressions." Now you have two
problems.
Have I overlooked a way already built into Windows Icon
to call an external routine? If so, that might solve the
socket question. If not, I probably can wait on that and
perhaps used a shared directory and let the processes
communicate via files for the present.
All comments and suggestions and criticisms welcomed.
-- Frank
frank.sergeant@pobox.com